//
//  WBNetTool.swift
//  SinaWeibo_Swift
//
//  Created by TianZhen on 16/4/9.
//  Copyright © 2016年 TianZhen. All rights reserved.
//
import UIKit
import AFNetworking

enum WBNetToolError: Int
{
    case emptyToken = -1
    case emptyUid = -2
    
    // 枚举定义属性
    var errorDescription: String
        {
        switch self
        {
        case.emptyToken: return "token 为空"
        case.emptyUid: return "uid 为空"
            }
    }
    
    // 枚举定义方法
    func error() -> NSError
    {
        return NSError(domain: "http://www.baidu.com/", code: rawValue, userInfo: ["errorDescription" : errorDescription])
    }
    
    
}

class WBNetTool: AFHTTPSessionManager {
    
    // 单例模式
    static let sharedInstance: WBNetTool =
    {
        let tool = WBNetTool()
        tool.responseSerializer.acceptableContentTypes?.insert("text/plain")
        return tool
    }()
    
//    // 以后调用GET请求直接使用这个方法,好处:1.requestGET会自动拼接access_token 2.当需要更换网络框架时只需要修改requestGET这一个方法就可以了
//    func requestGET(urlString: String, var parameters: [String: AnyObject]?, requestCallBack: (result: [String: AnyObject]?, error: NSError?) -> ()) {
//        
//        // 判断access_token
//        guard let access_token = WBUserAccountViewModel.sharedInstance.userAccount?.access_token else {
//            // 将NSError的创建也封装到枚举里面
//            let error = WBNetToolError.emptyToken.error()
//            requestCallBack(result: nil, error: error)
//            return
//        }
//        
//        // 当别人没有传入请求参数,创建请求参数
//        if parameters == nil {
//            parameters = [String: AnyObject]()
//        }
//        
//        // 给参数拼接access_token,添加 ["access_token": access_token]
//        parameters!["access_token"] = access_token
//
//        // 调用AFN的GET请求
//        self.GET(urlString, parameters: parameters, progress: nil, success: { (_, result) -> Void in
//            requestCallBack(result: result as? [String: AnyObject], error: nil)
//            }) { (_, error) -> Void in
//                requestCallBack(result: nil, error: error)
//        }
//    }
}
